home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 7 / rzsz0589.zip / GENIE.C < prev    next >
C/C++ Source or Header  |  1989-05-25  |  2KB  |  112 lines

  1. /*
  2.  *
  3.  *  Rev 5-25-89
  4.  *  This file contains GEnie specific code for setting terminal modes,
  5.  *  very little is specific to ZMODEM or YMODEM per se (that code is in
  6.  *  sz.c and rz.c).  The CRC-16 routines used by XMODEM, YMODEM, and ZMODEM
  7.  *  are also in this file, a fast table driven macro version
  8.  *
  9.  *   This file is #included so the main file can set parameters such as HOWMANY.
  10.  *   See the main file rz.c for compile instructions.
  11.  */
  12.  
  13. #include <string.h>
  14. #include <fcntl.h>
  15.  
  16. #define XARGSFILE "/"
  17. #define XX
  18.  
  19. STATIC char Myattn[] = { 0335, 0336, 0336, 0,
  20.      0335, 0336, 0336, 24,24,24,24,24,24,24,24,24,24,13
  21. };
  22. #define ALTCANOFF 4
  23.  
  24. /*
  25. extern unsigned int _fmode = O_BINARY;
  26. */
  27.  
  28. /*
  29.  * return 1 iff stdout and stderr are different devices
  30.  *  indicating this program operating with a modem on a
  31.  *  different line
  32.  */
  33. int Fromcu;        /* Were called from cu or yam */
  34. from_cu()
  35. {
  36.     return 0;
  37. }
  38. cucheck()
  39. {
  40. }
  41.  
  42.  
  43. int Twostop;        /* Use two stop bits */
  44.  
  45.  
  46.  
  47.  
  48. /*
  49.  * mode(n)
  50.  *  3: save old tty stat, set raw mode with flow control
  51.  *  2: set XON/XOFF for sb/sz with ZMODEM or YMODEM-g
  52.  *  1: save old tty stat, set raw mode 
  53.  *  0: restore original tty mode
  54.  */
  55. mode(n)
  56. {
  57.     static did0 = FALSE;
  58.  
  59.     vfile("mode:%d", n);
  60.     switch(n) {
  61.     case 2:        /* Un-raw mode used by sz, sb when -g detected */
  62.     case 1:
  63.     case 3:
  64.         did0 = TRUE;
  65.         system("set x on");
  66.         system("set e off");
  67.         system("set t13,10");
  68. /*
  69.         system("set b3");
  70. */
  71.         reset(1);
  72.         binary(1); 
  73.         /* Assume fd 1 is stdout (not documented in GEnie) */
  74.         fcntl(1, F_SETFL,
  75.           ((fcntl(1, F_GETFL, 0)|O_BINARY)& ~O_POST_BREAK));
  76.         return OK;
  77.     case 0:
  78.         if(!did0)
  79.             return ERROR;
  80.  
  81.         return OK;
  82.     default:
  83.         return ERROR;
  84.     }
  85. }
  86.  
  87. sendbrk()
  88. {
  89. }
  90. /*
  91.  * readline(timeout) reads character(s) from file descriptor 0
  92.  * timeout is in tenths of seconds
  93.  */
  94. readline(timeout)
  95. {
  96.     static char byt[1];
  97.  
  98.     fflush(stdout);
  99.     read(0, byt, 1);
  100.     return (byt[0]&0377);
  101. }
  102.  
  103. flushmo()
  104. {
  105.     fflush(stdout);
  106. }
  107.  
  108. purgeline() {}
  109.  
  110.  
  111. /* End of genie.c */
  112.